home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / fade into you / getting there / Apps / MOO-1.7.6.src / inc / tasks.h < prev    next >
Text File  |  1994-11-02  |  3KB  |  72 lines

  1. /******************************************************************************
  2.   Copyright (c) 1992 Xerox Corporation.  All rights reserved.
  3.   Portions of this code were written by Stephen White, aka ghond.
  4.   Use and copying of this software and preparation of derivative works based
  5.   upon this software are permitted.  Any distribution of this software or
  6.   derivative works must comply with all applicable United States export
  7.   control laws.  This software is made available AS IS, and Xerox Corporation
  8.   makes no warranty about the software, its performance or its conformity to
  9.   any specification.  Any person obtaining a copy of this software is requested
  10.   to send their name and post office or electronic mail address to:
  11.     Pavel Curtis
  12.     Xerox PARC
  13.     3333 Coyote Hill Rd.
  14.     Palo Alto, CA 94304
  15.     Pavel@Xerox.Com
  16.  *****************************************************************************/
  17.  
  18. #ifndef Tasks_H
  19. #define Tasks_H 1
  20.  
  21. #include "config.h"
  22. #include "execute.h"
  23. #include "structures.h"
  24.  
  25. typedef struct {
  26.     void       *ptr;
  27. } task_queue;
  28.  
  29. typedef enum { TASK_INPUT, TASK_FORKED, TASK_SUSPENDED } task_kind;
  30.  
  31. extern void    set_task_kind(task_kind kind);
  32.  
  33. extern task_queue    new_task_queue(Objid player);
  34. extern void        free_task_queue(task_queue q);
  35.  
  36. extern void        enqueue_input_task(task_queue, const char *);
  37. extern int        enqueue_forked_task(Program *program, activation a,
  38.                         Var *rt_env, unsigned f_index, 
  39.                         unsigned after_seconds);
  40. extern void         enqueue_suspended_task(vm the_vm,
  41.                            unsigned after_seconds);
  42. extern enum error    make_reading_task(vm the_vm, Var opt_player);
  43.  
  44. extern int        next_task_start(void);
  45. extern void        run_ready_tasks(void);
  46. extern void        run_server_task(Objid player, Objid what,
  47.                     const char *verb, Var args,
  48.                     const char *argstr, Var *result);
  49.  
  50. extern void        write_task_queue(FILE *);
  51. extern int        read_task_queue(FILE *);
  52.  
  53. #endif /* !Tasks_H */
  54.  
  55. /* $Log: tasks.h,v $
  56.  * Revision 1.5  1992/10/23  23:03:47  pavel
  57.  * Added copyright notice.
  58.  *
  59.  * Revision 1.4  1992/10/21  03:02:35  pavel
  60.  * Converted to use new automatic configuration system.
  61.  *
  62.  * Revision 1.3  1992/09/08  21:56:27  pjames
  63.  * Removed some procedures which are no longer external.
  64.  *
  65.  * Revision 1.2  1992/08/10  16:48:00  pjames
  66.  * Changed Parse_Info to activation in enqueue_forked_task argument list,
  67.  * because all important information is now stored in activation.
  68.  *
  69.  * Revision 1.1  1992/07/20  23:23:12  pavel
  70.  * Initial RCS-controlled version.
  71.  */
  72.